package cn.tedu.boqi.shop.order.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    /**
     * url是当前项目中的白名单
     */
    String[] url={
            "/doc.html",
            "/user/login"
    };

    /**
     * 此配置方法为优先匹配原则
     * 先匹配第一条如果第一条匹配上就按照第一条的规矩去执行
     * 第一条就是按照提供的白名单数组匹配，匹配成功的规则是允许访问
     * 第二条就是当前路径不是白名单，就需要去认证（登录）
     * @param http
     * @throws Exception
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()//配置URL的访问控制
                .mvcMatchers(url)//匹配指定的url参数是字符串数组
                .permitAll()//直接许可：不需要登录就可以访问
                .anyRequest()//任何请求
                .authenticated();//以上匹配的请求是需要认证的
    }
}
